actor._backgroundMenu.open(BoxPointer.PopupAnimation.FULL);
}
- let clickAction = new Clutter.ClickAction();
- clickAction.connect('long-press', (action, theActor, state) => {
- if (state === Clutter.LongPressState.QUERY) {
- return (action.get_button() === 0 ||
- action.get_button() === 1) &&
- !actor._backgroundMenu.isOpen;
- }
- if (state === Clutter.LongPressState.ACTIVATE) {
- let [x, y] = action.get_coords();
- openMenu(x, y);
- actor._backgroundManager.ignoreRelease();
- }
- return true;
+ const longPressGesture = new Clutter.LongPressGesture({
+ required_button: Clutter.BUTTON_PRIMARY,
});
+ longPressGesture.connect('recognize', () => {
+ if (actor._backgroundMenu.isOpen)
+ return;
+
+ const coords = longPressGesture.get_coords();
+ const point = new Graphene.Point3D({x: coords.x, y: coords.y});
+ const transformedPoint = actor.apply_transform_to_point(point);
+ openMenu(transformedPoint.x, transformedPoint.y);
+ });
+ actor.add_action(longPressGesture);
+
+ const clickAction = new Clutter.ClickAction();
clickAction.connect('clicked', action => {
if (action.get_button() === 3) {
let [x, y] = action.get_coords();